package com.ssy.lingxi.contract.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.contract.api.model.vo.request.ContractExecuteInfoAddVO;
import com.ssy.lingxi.contract.entity.ContractExecuteInfoDO;
import com.ssy.lingxi.contract.model.vo.applyamount.request.UpdateApplyAmountVO;
import com.ssy.lingxi.contract.model.vo.execute.request.ContractExecuteInfoPageVO;
import com.ssy.lingxi.contract.model.vo.execute.response.ContractExecuteInfoQueryVO;

import java.util.List;

/**
 * 合同执行情况接口定义
 * @author 伍将
 * @date 2021/3/9
 * @version 2.0.0
 */
public interface IContractExecuteInfoService {

    /**
     * 批量新增合同执行情况
     * @author 伍将
     * @date 2021/3/9
     * @param addVOList: 新增请求参数
     * @return 操作结果
     **/
    Wrapper<Void> addList(List<ContractExecuteInfoAddVO> addVOList);

    /**
     * 分页查询合同执行情况
     * @author 伍将
     * @date 2021/3/9
     * @param pageVO: 分页请求参数
     * @return 操作结果
     **/
    Wrapper<PageData<ContractExecuteInfoQueryVO>> pageList(UserLoginCacheDTO user, ContractExecuteInfoPageVO pageVO);

    /**
     * 根据合同执行请款id查询执行请款列表
     * @author 伍将
     * @date 2021/3/10
     * @param idList: 执行请款id
     * @return 操作结果
     **/
    List<ContractExecuteInfoDO> getListById(List<Long> idList);

    /**
     * 更新合同执行请款金额
     * @author 伍将
     * @date 2021/3/10
     * @param updateVOList: 更新请求参数
     * @return 操作结果
     **/
    Wrapper<Void> updateApplyAmount(List<UpdateApplyAmountVO> updateVOList);
}
